#ifndef VISUALCOMPONENTVIADER_H_
#define VISUALCOMPONENTVIADER_H_

#include "gui/VisualComponents/VisualDERComponent.h"
#include "gui/VisualComponents/VisualComponentVia.h"
#include "model/der/ViaDER.h"

class VisualComponentViaDER: public VisualComponentVia, public VisualDERComponent {

public:
	VisualComponentViaDER(VisualComponentConector* start, Diagram* diagram, VisualComponentConector* end = NULL);
	VisualComponentViaDER(const VisualComponentViaDER& other);
	VisualComponentViaDER(Diagram* diagram);
	virtual ~VisualComponentViaDER();

	virtual void load(XmlReader& reader, Diagram* diagram);
	virtual void load(XmlReader& reader, XmlReader& readerModel, Diagram* diagram);
    virtual VisualDERComponent *getCopy(Diagram* diagram);
	virtual void draw(Cairo::RefPtr<Cairo::Context> ptrContext);
	virtual void showProperties();

	virtual void store(XmlWriter& writer_rep, XmlWriter& writer_comp, Diagram* diagram) {
		VisualDERComponent::store(writer_rep, writer_comp, diagram);
	}
	virtual void update() {
		VisualDERComponent::update();
	}
	InfluenceArea getInfluenceArea() {
		return VisualComponentVia::getInfluenceArea();
	}

};

#endif /* VISUALCOMPONENTVIADER_H_ */

